/**
 * http.js
 * 作用：实现ajax请求封装
 * author：xxx   date：2022-5-5
 */
// 第一遍
// function formatObj(obj){
//     let str = '';
//     for(key in obj){
//         str +='&'+key+'='+obj[key];
//     }
//     str = str.slice(1);
//     return str;
// }
// const http={
//     // get请求
//     get:function(url,obj,callback){
//         let xhr =new XMLHttpRequest();
//         xhr.open('get',url+'?'+formatObj(obj));
//         xhr.send();
//         xhr.onreadystatechange=function(){
//             if(xhr.readyState==4&&xhr.status==200){
//                 callback(JSON.parse(xhr.responseText))
//             }
//         }
//     },
//     // post请求
//     post:function(url,obj,callback){
//         let xhr = new XMLHttpRequest();
//         xhr.open('post',url);
//         // xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
//         // xhr.send(formatObj(obj));
//         xhr.setRequestHeader('Content-Type','application/json');
//         xhr.send(JSON.stringify(obj));
//         xhr.onreadystatechange=function(){
//             if(xhr.readyState==4&&xhr.status==200){
//                 callback(JSON.parse(xhr.responseText))
//             }
//         }

//     },
//     // ajax请求
//     ajax:function(obj){
//         if(obj.type=='get'){
//             http.get(obj.url,obj.user,obj.success)
//         }
//         if(obj.type=='post'){
//             http.post(obj.url,obj.user,obj.success)
//         }
//     }
// }



// 第二遍
// function formatObj(obj){
//     let str = '';
//     for(key in obj){
//         str+='&'+key+'='+obj[key]
//         str=str.slice(1);
//     }
//     return str;
// }
// const http={
//     // get请求
//     get:function(url,obj,callback){
//         let xhr = new XMLHttpRequest();
//         xhr.open('get',url+'?'+formatObj(obj));
//         xhr.send();
//         xhr.onreadystatechange=function(){
//             if(xhr.readyState==4&&xhr.status==200){
//                 callback(JSON.parse(xhr.responseText))
//             }
//         }
//     },
//     // post请求
//     post:function(url,obj,callback){
//         let xhr=new XMLHttpRequest();
//         xhr.open('post',url);
//         xhr.setRequestHeader('Content-Type','application/json');
//         xhr.send(JSON.stringify(obj));
//         xhr.onreadystatechange=function(){
//             if(xhr.readyState==4&&xhr.status==200){
//                 callback(JSON.parse(xhr.responseText))
//             }
//         }
//     },
//     // ajax请求
//     ajax:function(obj){
//         if(obj.type=='get'){
//             this.get(obj.url,obj.obj,obj.success)
//         }
//         if(obj.type=='post'){
//             this.post(obj.url,obj.obj,obj.success)
//         }
//     }
// }


// 第三遍
function formatObj(obj){
    let str = '';
    for(key in obj){
        str+='&'+key+'='+obj[key];
        str=str.slice(1)
    }
    return str;
}
const http = {
    get:function(url,obj,callback){
        let xhr = new XMLHttpRequest();
        xhr.open('get',url+'?'+formatObj(obj));
        xhr.send();
        xhr.onreadystatechange=function(){
            if(xhr.readyState==4&&xhr.status==200){
                callback(JSON.parse(xhr.responseText))
            }
        }
    },
    post:function(url,obj,callback){
        let xhr = new XMLHttpRequest();
        xhr.open('post',url);
        xhr.setRequestHeader('Content-Type','application/json');
        xhr.send(JSON.stringify(obj));
        xhr.onreadystatechange=function(){
            if(xhr.readyState==4&&xhr.status==200){
                callback(JSON.parse(xhr.responseText))
            }
        }
    },
    ajax:function(obj){
        if(obj.type=='get'){
            this.get(obj.url,obj.obj,obj.success)
        };
        if(obj.type=='post'){
            this.post(obj.url,obj.obj,obj.success)
        }
    }
}
window.http=http;